home *** CD-ROM | disk | FTP | other *** search
/ Adobe Graphics & Publishing SDK 1996 December / Adobe Graphics & Publishing SDK 1996 December.iso / pc / pm65sdk / sourcecode / includes / cibasic.h next >
C/C++ Source or Header  |  1996-11-18  |  4KB  |  128 lines

  1. /**[f******************************************************************
  2.  *    CIBasic.h -- CIBasic Interface definition
  3.  *
  4.  *    Copyright (c) 1996 Adobe Systems, Inc. All Rights Reserved
  5.  *
  6.  *    
  7.  * ABSTRACT:  
  8.  *
  9.  * USAGE: 
  10.  *
  11.  * ROUTINES DEFINED:
  12.  *
  13.  *
  14.  **f]******************************************************************/ 
  15.  
  16. #ifndef __CIBASIC_H
  17. #define __CIBASIC_H
  18.  
  19. #include "PMEvent.h"
  20.  
  21. // DataType used by GetParm  
  22. typedef enum
  23. {
  24.     PMXTShort = 0,
  25.     PMXTHandle,
  26.     PMXTLong,
  27.     PMXTByte,
  28.     PMXTText,
  29.     PMXTBool
  30. } eDataType;
  31.  
  32. // DataType for Co-ordinate system utility routines
  33. #ifndef    DC
  34.     typedef short DC;            // screen device coordinates
  35.     typedef    short WC;            // World Coordinates
  36.     typedef struct __WCPOINT {
  37.         WC x;
  38.         WC y;
  39.     } WCPOINT, DCPOINT, *LPWCPOINT, *LPDCPOINT;
  40.     typedef struct __LONGPOINT {
  41.         long x;
  42.         long y;
  43.     } LONGPOINT, *LPLONGPOINT;
  44. #endif
  45.  
  46. class CIBasic : public CIInterface {
  47. public:
  48.     //    Memory functions. Plug-ins are strongly recomended to use 
  49.     //    these function to manage their memory.
  50.     virtual void *PMMemAlloc(unsigned long) = 0;
  51.     virtual void PMMemFree(void *) = 0;
  52.     virtual void *PMMemRealloc(void *, unsigned long) = 0;
  53.  
  54.     //    Windows only basic functions
  55. #ifdef WINDOWS
  56.     virtual HINSTANCE    GetPMInst() = 0;
  57.     //    Retrieve the PageMaker external resource instance.
  58.     virtual HINSTANCE    GetPMResInst() = 0;
  59. #endif
  60.  
  61.     // Set library property (i.e. kStayInMem) return old property
  62.     // If you want to turn off kStayInMem, you should do the following
  63.     // pBasic->SetPlugInLibProperty(pBasic->GetPlugInLibProperty() & ~kStayInMem))
  64.     virtual PMXErr SetPlugInLibProperty(unsigned long theProperty)=0;
  65.     virtual unsigned long GetPlugInLibProperty()=0;
  66.  
  67.     //    Retrieve the version of PageMaker plug-in interface
  68.     virtual unsigned short    PMInterfaceVersion() = 0;
  69.  
  70.     //    Registration of PMEvent
  71.     virtual PMXErr    RegisterPMEvent(PMEventID eventID) = 0;
  72.     virtual PMXErr    UnregisterPMEvent(PMEventID eventID) = 0;
  73.  
  74.     // Plugin Command Param Block - extract data from PMEVT_PLUGIN_COMMAND ParamData 
  75.     virtual    char     *LockData(void * ParamData, int ParamNumber=0) = 0;
  76.     virtual    PMXErr    LockData(void * ParamData, void * pBuffer, int BuffSize) = 0;
  77.     virtual    void    Unlock(void * ParamData, int ParamNumber=0) = 0;
  78.     virtual    PMXErr    GetParm(void * ParamData, int ParamNumber, int DataType, void * pBuffer) = 0;
  79.  
  80.     // Co-ordinate system utility routines
  81.     virtual    PMXErr    SetDCOrg(LONGPOINT *pNewPubDC, LONGPOINT *pOldPubDC) = 0;
  82.     
  83.     // position of the center of pasteboard offset from the upper-left-hand corner of
  84.     // the pub window and the screen (in pixel)
  85.     virtual PMXErr    GetDCOrg(LONGPOINT *pPubDC, LONGPOINT *pScreenDC) = 0;
  86.  
  87.     // get ruler zero point relative to the center of the pasteboard (in twips)
  88.     virtual PMXErr    GetRulerOrg(LONGPOINT *pRulerOrg) = 0;
  89.  
  90.     // Coordinate conversion procedures includes offset from Pub origin
  91.     virtual    DC        WCtoXDC(WC xwc) = 0;
  92.     virtual    DC        WCtoYDC(WC ywc) = 0;
  93.     virtual    WC        XDCtoWC(DC xdc) = 0;
  94.     virtual    WC        YDCtoWC(DC ydc) = 0;
  95.     // Long versions of coordinate conversion procedures.
  96.     virtual    DC        LWCtoXDC(long lwc) = 0;
  97.     virtual    DC        LWCtoYDC(long lwc) = 0;
  98.     virtual    long    XDCtoLWC(DC xdc) = 0;
  99.     virtual    long    YDCtoLWC(DC ydc) = 0;
  100.  
  101.     // Unit conversion procedures no offset from origin 
  102.     virtual    DC        WUtoXDU(WC wu) = 0;
  103.     virtual    DC        WUtoYDU(WC wu) = 0;
  104.     virtual    WC        XDUtoWU(DC xdu) = 0;
  105.     virtual    WC        YDUtoWU(DC ydu) = 0;
  106.     virtual    long    LXDUtoLWU(long xdu) = 0;
  107.     virtual    long    LYDUtoLWU(long ydu) = 0;
  108.  
  109.     // point conversion procedures
  110.     virtual    void    WCtoDC(LPWCPOINT pwcpoint, LPDCPOINT pdcpoint) = 0;
  111.     virtual    void    DCtoWC(LPDCPOINT pdcpoint, LPWCPOINT  pwcpoint) = 0;
  112.     virtual    void    WUtoDU(LPWCPOINT pwcpoint, LPDCPOINT  pdcpoint) = 0;
  113.     virtual    DC        LWUtoXDU(long wu) = 0;
  114.     virtual    DC        LWUtoYDU(long wu) = 0;
  115.     virtual    long    LWUtoLXDU(long wu) = 0;
  116.     virtual    long    LWUtoLYDU(long wu) = 0;
  117. };
  118.  
  119. class CIPMInfo : public CIInterface {
  120. public:
  121.     virtual char *GetRegisterUserName()=0;
  122.     virtual char *GetRegisterCompanyName()=0;
  123.     virtual char *GetRegisterSerialNumber()=0;
  124.     virtual void GetVersionNumber(unsigned short *pMajorVerionNumber, unsigned short *pMinorVerionNumber)=0;
  125. //    virtual PMLANGUAGE GetPMLanguageVersion()=0;    
  126. };
  127. #endif
  128.